const BASE_URL = 'http://localhost:9090';
export function request(config = {}) {
	let {
		url,
		data = {},
		method = "GET",
		header = {}
	} = config;

	url = BASE_URL + url;

	// 设置 token 请求头
	let token;

	// #ifdef MP
	token = uni.getStorageSync("token");
	// #endif

	// #ifndef MP
	const userInfo = JSON.parse(uni.getStorageSync("userInfo") || "{}");
	token = userInfo?.token
	// #endif


	if (token) {
		header['token'] = token;
	}

	return new Promise((resolve, reject) => {
		uni.request({
			url,
			data,
			method,
			header,
			success: res => {
				// 假设 res.data 是后端返回的 { code: "200", msg: "", data: {} }
				if (res.data.code === "200") {
					resolve(res.data);
				} else if (res.data.code === "401") {
					// 清空所有缓存（包括 token 和其他用户信息）
					uni.clearStorageSync();

					// 提示用户登录失效
					uni.showModal({
						title: "提示",
						content: res.data.msg || "登录已失效，请重新登录",
						showCancel: false,
						success: () => {
							// 跳转到登录页
							uni.reLaunch({
								url: '/pages/login/login' // 确保这个路径正确
							});
						}
					});

					reject(res.data);
				} else {
					// 其他业务错误
					uni.showToast({
						title: res.data.msg || "请求失败",
						icon: "none",
						duration: 2000
					});
					reject(res.data);
				}
			},
			fail: err => {
				uni.showToast({
					title: "网络请求失败",
					icon: "none"
				});
				reject(err);
			}
		});
	});
}